package com.FundamentalDemos.TypeConversion;

public class TypeConversion2 {
    public static void main(String[] args) {
//        理解混合运算中的类型自动转换
//        byte,short,char->int->long->float->double
//        表达式的最终结果类型由表达式中的最高类型决定

        byte a = 10;
        int b = 20;
        long c = 30;
        long result = a + b + c;
        System.out.println(result);

        double result2 = a + b + 1.0/*double*/;
        System.out.println(result2);

        byte i = 10;
        short j = 30;
        int result3 = i + j;//byte,short,char是直接转换成int类型参与运算的
        System.out.println(result3);

        //面试笔试题:
        byte b1 = 10;
        byte b2 = 80;
        int b3 = b1 + b2;//b1+b2的结果是int类型,因为byte+byte可能会溢出一个字节


        byte aa = 3;
//        byte bb = aa + 4;//报错,需要强转成int
        byte cc = 3 + 4;//常量优化机制


        byte B = 1;//b是byte类型
        B += 1;
        B++;
        B = (byte) (B + 1);
        System.out.println(B);
    }
}
